Skip to main content

Item.dat

That file contains list of all items configurations. You can edit that file using any text file editor.

Example​

Item.dat
	VNUM	1	70
NAME zts3e
INDEX 0 0 0 0 1 0
TYPE 0 1
FLAG 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DATA 1 20 28 20 4 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BUFF -1 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LINEDESC 1
zts4e
END
#========================================================

Notes​

  • Between each item configuration there is a END keyword and #===... separator.
  • That file never use spaces, only tabs.
  • If you will specify wrong zts value (translation) it will display that zts value (for example zts3e) in game.

Format​

Item.dat
	VNUM	{ItemVnum}	{ItemPrice}
NAME {Name}
INDEX {InventoryType} {ItemType} {ItemSubType} {EquipmentSlot} {IconId} {VisualChangeId}
TYPE {AttackType} {RequiredClass}
FLAG {Flag1} {Flag2} {Flag3} {NoSelling} {NoDropping} {NoTrading} {UseableMinilandItem} {UseableMinilandItem2} {ShowWarningOnUse} {IsTimespaceRewardBox} {ShowDescriptionOwner} {Flag4} {FollowMouseOnUse} {ShowSomethingOnHover} {CanBeColored} {FemaleCanWear} {MaleCanWear} {Notused} {CanBeColored} {PlaySoundOnPickup} {UseReputationAsPrice} {IsHeroLvlEq} {Flag5} {IsLimited}
DATA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
BUFF {*BCard*} {*BCard*} {*BCard*} {*BCard*} {*BCard*}
LINEDESC 1
{Desc}
END
#========================================================
warning

Its important to remember that values are separated by tabs, not spaces.

Visual Studio Code replaces tabs with spaces by default. Thats why recommended is to use Notepad++ or other text editor who will not replace tabs with spaces.

NAME and LINEDESC​

  • {Name} and {Desc} contains the key for translation. For example zts3e is a key for translation.
  • Translations can be found in _code_<lang>_<filetype>.txt files (for example _code_en_Item.txt).
  • If you will specify wrong zts value (translation) it will display that zts value (for example zts3e) in game.

INDEX​

ValueDescription
InventoryType
OpenNos.Domain/InventoryType.cs
  Equipment = 0
Main = 1
Etc = 2
Miniland = 3
Equipment = 4
Equipment = 8
Main = 9
ETC = 10

OpenNos.Import.Console/ImportFactory.cs

OpenNos.Domain/InventoryType.cs

ItemType
OpenNos.Domain/ItemType.cs
  Weapon = 0
Armor = 1
Fashion = 2
Jewelery = 3
Specialist = 4
Box = 5
Shell = 6
Main = 10
Upgrade = 11
Production = 12
Map = 13
Special = 14
Potion = 15
Event = 16
Title = 17
Quest1 = 18
Sell = 20
Food = 21
Snack = 22
Magical = 24
Material = 25
Teacher = 26
Ammo = 27
Quest2 = 28
House = 30
Garden = 31
Minigame = 32
Terrace = 33
MinilandTheme = 34

OpenNos.Domain/ItemType.cs

ItemSubType

ItemSubType is a subtype of ItemType. Its meaning depends on the ItemType.

If ItemType is Weapon (0)
  AdventurerSword = 0,
SwordsmanSword = 1,
Daggers = 3,
Fists = 4,
Singleshot = 5,
Bow = 6,
MagicSpellGun = 8,
Wands = 9,
Tokens = 11,
PartnerWeapons = 12
If ItemType is Armor (1)
  AdventurerArmor = 0,
MageArmor = 1,
ArcherArmor = 2,
SwordmanArmor = 3,
PartnerArmor = 4,
MartialArtistArmor = 5,
If ItemType is Fashion (2)
  Hats = 0,
Masks = 1,
Gloves = 2,
Boots = 3,
CostumeBottom = 4,
CostumeTop = 5,
CostumeWeapon = 6
If ItemType is Specialist (4)
  EquippabbleByAdventurer = 0,
SpClassSpecific = 1,
PartnerSp = 4
If ItemType is Box (5)
  PetBead = 0,
PartnerBead = 1,
SpecialistHolder = 2,
RaidBoxOrSealedJajamaruSpOrSealedSakuraBead = 3,
VehicleBead = 4,
FairyBead = 5,
PartnerSpHolder = 6
If ItemType is Shell (6)
  Weapon = 0,
Armor = 1
If InventoryType is Miniland (3)
  House = 0,
SmallHouse = 1,
Warehouse = 2
EquipmentSlot
OpenNos.Domain/EquipmentType.cs
  MainWeapon = 0
Armor = 1
Hat = 2
Gloves = 3
Boots = 4
SecondaryWeapon = 5
Necklace = 6
Ring = 7
Bracelet = 8
Mask = 9
Fairy = 10
Amulet = 11
Sp = 12
CostumeSuit = 13
CostumeHat = 14
WeaponSkin = 15
Wings = 16
MiniPet = 17

OpenNos.Domain/EquipmentType.cs

IconIdid of the icon file which is located in the NSipData.NOS file
VisualChangeIdVisualChangeId

FLAG​

Each flag is a boolean value, 0 means false, 1 means true.

IndexFlagDescription
1Flag1All items have 0 there
2Flag2All items have 0 there
3Flag31 if Sealed Jajamaru SP or Sealed Princess Sakura Bead or Hat-Shaped Stone (propably useless)
4NoSelling
5NoDropping
6NoTrading
7UseableMinilandItemThe same as UseableMinilandItem2 but with weird trash
8UseableMinilandItem2Miniland structures (but not all)
9ShowWarningOnUseOpen window to confirm use
10IsTimespaceRewardBoxThere is only one item (Mysterious Box, VNum: 1098 )
11ShowDescriptionOwner
12Flag4The purpouse is unknown
13FollowMouseOnUse
14ShowSomethingOnHoverCostumes and clothes (showing custom clothes), wings, weapon skin, fairy
15CanBeColored
16FemaleCanWear
17MaleCanWear
18NotusedAll items have 0 there
19PlaySoundOnPickup
20UseReputationAsPrice
21IsHeroLvlEq
22Flag5The purpouse is unknown
23IsLimited

DATA​

  • Contains 20 values.
  • The meaning of each value depends on the context, for example, the same value can mean something different for a sword or armor.

More information can be found in Item.dat parsers in the server source code.

BUFF​

  • Contains 5 BCards.
  • Each Bcard contains 5 values and this is the format:
    *BCard*
      {BCardVNUM}	{EffectVal_1}	{EffectVal_2}	{BCardSub}	{Target}

Common issues​

Game crashes​

Make sure format is correct.

  • Are you using tabs instead of spaces?
  • Is there a END keyword and #===... separator between each item configuration?
  • Are the values in the correct order? (VNUM, NAME, INDEX, TYPE, FLAG, DATA, BUFF, LINEDESC, END)
  • Are the values in correct range? (FLAG values are 0 or 1, maybe you are trying to use something unexpected)
  • Do you have correct amount of parameters in each line? (You have 20 values in DATA and 25 values in BUFF and 23 values in FLAG)

How to change item icon?​

IconId is located in INDEX row. You need to change it to the correct icon id. If icon does not exist it will default to question mark icon.

New icons can be added to the NSipData.NOS file. The file name is the icon id.

Sources​